#include "task.h"
#include "types.h"

/* fifo的相关函数实现，由于task在这里定义，所以放后面 */
void fifo32_init(FIFO32Type *fifo, struct TASK *task) {
    fifo->task = task;
    INIT_KFIFO(fifo->fifo);
}

void fifo32_put(FIFO32Type *fifo, int data) {
    kfifo_put(&fifo->fifo, data);
    if (fifo->task != NULL) {
        if (fifo->task->flags == TASK_SLEEPING) {
            // 唤醒task，不修改优先级
            task_run(fifo->task, 0);
        }
    }
}
